/**
 */
package org.mro.grib.model.files.secondEdition.grids;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Grid Definition Template3100</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getExponentOf2 <em>Exponent Of2</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getExponentOf3 <em>Exponent Of3</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberOfIntervals <em>Number Of Intervals</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberOfDiamonds <em>Number Of Diamonds</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLatitudeOfThePolePoint <em>Latitude Of The Pole Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLongitudeOfThePolePoint <em>Longitude Of The Pole Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLongitudeOfTheCentreLineOfTheFirstDiamond <em>Longitude Of The Centre Line Of The First Diamond</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getGridPointPosition <em>Grid Point Position</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberingOrderOfDiamonds <em>Numbering Order Of Diamonds</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getScanningModeForOneDiamond <em>Scanning Mode For One Diamond</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getTotalNumberOfGridPoints <em>Total Number Of Grid Points</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description='triangular grid based on an icosahedron (see Attachment, Volume I.2, Part B, Att.GRIB)' note_1='For more details see in Part B of this volume the Attachment entitled \u201cDefinition of a triangular grid based on an\r\nicosahedron\u201d (I.2\u2013Att.GRIB\u20131 to 8).' note_2='The origin of the grid is an icosahedron with 20 triangles and 12 vertices. The triangles are combined to nd quadrangles,\r\nthe so-called diamonds (e.g. if nd = 10, two of the icosahedron triangles form a diamond, and if nd = 5, 4 icosahedron\r\ntriangles form a diamond). There are two resolution values called n2 and n3 describing the division of each triangle side.\r\nEach triangle side is divided into ni equal parts, where ni = 3n3 x \uf0202n2 with n3 either equal to 0 or to 1. In the example of\r\nthe Attachment, the numbering order of the rectangles is anti-clockwise with a view from the pole point on both\r\nhemispheres. Diamonds 1 to 5 are northern hemisphere and diamonds 6 to 10 are southern hemisphere.' note_3='The exponent of 3 for the number of divisions of triangle sides is used only with a value of either 0 or 1.' note_4='The total number of grid points for one global field depends on the grid point position. If e.g. the grid points are located\r\nat the vertices of the triangles, then nt = (ni + 1) x (ni + 1) x nd since grid points at diamond edges are contained in both\r\nadjacent diamonds and for the same reason the pole points are contained in each of the five adjacent diamonds.'"
 * @generated
 */
public interface GridDefinitionTemplate3100 extends IGridDefinition {
	/**
	 * Returns the value of the '<em><b>Exponent Of2</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Exponent Of2</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Exponent Of2</em>' attribute.
	 * @see #setExponentOf2(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_ExponentOf2()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='n2' description_en='Exponent of 2 for the number of intervals on main triangle sides'"
	 * @generated
	 */
	byte getExponentOf2();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getExponentOf2 <em>Exponent Of2</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Exponent Of2</em>' attribute.
	 * @see #getExponentOf2()
	 * @generated
	 */
	void setExponentOf2(byte value);

	/**
	 * Returns the value of the '<em><b>Exponent Of3</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Exponent Of3</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Exponent Of3</em>' attribute.
	 * @see #setExponentOf3(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_ExponentOf3()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='n3' description_en='Exponent of 3 for the number of intervals on main triangle sides'"
	 * @generated
	 */
	byte getExponentOf3();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getExponentOf3 <em>Exponent Of3</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Exponent Of3</em>' attribute.
	 * @see #getExponentOf3()
	 * @generated
	 */
	void setExponentOf3(byte value);

	/**
	 * Returns the value of the '<em><b>Number Of Intervals</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Number Of Intervals</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Number Of Intervals</em>' attribute.
	 * @see #setNumberOfIntervals(short)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_NumberOfIntervals()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='ni' description_en='Number of intervals on main triangle sides of the icosahedron'"
	 * @generated
	 */
	short getNumberOfIntervals();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberOfIntervals <em>Number Of Intervals</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Number Of Intervals</em>' attribute.
	 * @see #getNumberOfIntervals()
	 * @generated
	 */
	void setNumberOfIntervals(short value);

	/**
	 * Returns the value of the '<em><b>Number Of Diamonds</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Number Of Diamonds</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Number Of Diamonds</em>' attribute.
	 * @see #setNumberOfDiamonds(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_NumberOfDiamonds()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='nd' description_en='Number of diamonds'"
	 * @generated
	 */
	byte getNumberOfDiamonds();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberOfDiamonds <em>Number Of Diamonds</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Number Of Diamonds</em>' attribute.
	 * @see #getNumberOfDiamonds()
	 * @generated
	 */
	void setNumberOfDiamonds(byte value);

	/**
	 * Returns the value of the '<em><b>Latitude Of The Pole Point</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Latitude Of The Pole Point</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Latitude Of The Pole Point</em>' attribute.
	 * @see #setLatitudeOfThePolePoint(int)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_LatitudeOfThePolePoint()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Latitude of the pole point' description_en='Latitude of the pole point of the icosahedron on the sphere'"
	 * @generated
	 */
	int getLatitudeOfThePolePoint();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLatitudeOfThePolePoint <em>Latitude Of The Pole Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Latitude Of The Pole Point</em>' attribute.
	 * @see #getLatitudeOfThePolePoint()
	 * @generated
	 */
	void setLatitudeOfThePolePoint(int value);

	/**
	 * Returns the value of the '<em><b>Longitude Of The Pole Point</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Longitude Of The Pole Point</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Longitude Of The Pole Point</em>' attribute.
	 * @see #setLongitudeOfThePolePoint(int)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_LongitudeOfThePolePoint()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Longitude of the pole point' description_en='Latitude of the pole point of the icosahedron on the sphere'"
	 * @generated
	 */
	int getLongitudeOfThePolePoint();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLongitudeOfThePolePoint <em>Longitude Of The Pole Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Longitude Of The Pole Point</em>' attribute.
	 * @see #getLongitudeOfThePolePoint()
	 * @generated
	 */
	void setLongitudeOfThePolePoint(int value);

	/**
	 * Returns the value of the '<em><b>Longitude Of The Centre Line Of The First Diamond</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Longitude Of The Centre Line Of The First Diamond</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Longitude Of The Centre Line Of The First Diamond</em>' attribute.
	 * @see #setLongitudeOfTheCentreLineOfTheFirstDiamond(int)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_LongitudeOfTheCentreLineOfTheFirstDiamond()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Longitude of the centre line' description_en='Longitude of the centre line of the first diamond of the icosahedron on the sphere'"
	 * @generated
	 */
	int getLongitudeOfTheCentreLineOfTheFirstDiamond();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getLongitudeOfTheCentreLineOfTheFirstDiamond <em>Longitude Of The Centre Line Of The First Diamond</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Longitude Of The Centre Line Of The First Diamond</em>' attribute.
	 * @see #getLongitudeOfTheCentreLineOfTheFirstDiamond()
	 * @generated
	 */
	void setLongitudeOfTheCentreLineOfTheFirstDiamond(int value);

	/**
	 * Returns the value of the '<em><b>Grid Point Position</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Grid Point Position</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Grid Point Position</em>' attribute.
	 * @see #setGridPointPosition(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_GridPointPosition()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Grid point position' description_en='Grid point position (see Code table 3.8)'"
	 * @generated
	 */
	byte getGridPointPosition();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getGridPointPosition <em>Grid Point Position</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Grid Point Position</em>' attribute.
	 * @see #getGridPointPosition()
	 * @generated
	 */
	void setGridPointPosition(byte value);

	/**
	 * Returns the value of the '<em><b>Numbering Order Of Diamonds</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Numbering Order Of Diamonds</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Numbering Order Of Diamonds</em>' attribute.
	 * @see #setNumberingOrderOfDiamonds(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_NumberingOrderOfDiamonds()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Numbering order of diamonds' description_en='Numbering order of diamonds (flags \u2013 see Flag table 3.9)'"
	 * @generated
	 */
	byte getNumberingOrderOfDiamonds();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getNumberingOrderOfDiamonds <em>Numbering Order Of Diamonds</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Numbering Order Of Diamonds</em>' attribute.
	 * @see #getNumberingOrderOfDiamonds()
	 * @generated
	 */
	void setNumberingOrderOfDiamonds(byte value);

	/**
	 * Returns the value of the '<em><b>Scanning Mode For One Diamond</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scanning Mode For One Diamond</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scanning Mode For One Diamond</em>' attribute.
	 * @see #setScanningModeForOneDiamond(byte)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_ScanningModeForOneDiamond()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Scanning mode for one diamond' description_en='Scanning mode for one diamond (flags \u2013 see Flag table 3.10)'"
	 * @generated
	 */
	byte getScanningModeForOneDiamond();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getScanningModeForOneDiamond <em>Scanning Mode For One Diamond</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scanning Mode For One Diamond</em>' attribute.
	 * @see #getScanningModeForOneDiamond()
	 * @generated
	 */
	void setScanningModeForOneDiamond(byte value);

	/**
	 * Returns the value of the '<em><b>Total Number Of Grid Points</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Total Number Of Grid Points</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Total Number Of Grid Points</em>' attribute.
	 * @see #setTotalNumberOfGridPoints(int)
	 * @see org.mro.grib.model.files.secondEdition.grids.GridsPackage#getGridDefinitionTemplate3100_TotalNumberOfGridPoints()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='nt' description_en='Total number of grid points'"
	 * @generated
	 */
	int getTotalNumberOfGridPoints();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate3100#getTotalNumberOfGridPoints <em>Total Number Of Grid Points</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Total Number Of Grid Points</em>' attribute.
	 * @see #getTotalNumberOfGridPoints()
	 * @generated
	 */
	void setTotalNumberOfGridPoints(int value);

} // GridDefinitionTemplate3100
